import java.io.IOException;

import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Consumer;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
import com.rabbitmq.client.QueueingConsumer;

/**
 *
 */
public class Recv {
	private static final String QUEUE_NAME = "hello";
	
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		ConnectionFactory connectionFactory = new ConnectionFactory();
		connectionFactory.setHost("localhost");
		Connection connection = connectionFactory.newConnection();
		Channel channel = connection.createChannel();
		channel.queueDeclare(QUEUE_NAME, false, false, false, null);
		System.out.print(" [*] Waiting for messages. To exit press CTRL+C\n");
		
//	    QueueingConsumer consumer = new QueueingConsumer(channel);
//	    channel.basicConsume(QUEUE_NAME, true, consumer);
//	    
//	    while (true) {
//	      QueueingConsumer.Delivery delivery = consumer.nextDelivery();
//	      String message = new String(delivery.getBody());
//	      System.out.println(" [x] Received '" + message + "'");
//	    }
	    
	    Consumer consumer = new DefaultConsumer(channel) {
		      @Override
		      public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException{
		        String message = new String(body, "UTF-8");
		        System.out.println(" [x] Received '" + message + "'");
		      }
		    };
		channel.basicConsume(QUEUE_NAME, true, consumer);
	}

}
